package pbf.util;

import java.net.URL;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

/**
 *
 * @author Ricardo
 */
public class Mensagem extends JOptionPane {

    static public final int SIM_OPCAO = YES_OPTION;
    static public final int NAO_OPCAO = NO_OPTION;
    static public final int CANCELAR_OPCAO = CANCEL_OPTION;
    static public final int SIM_NAO_OPCAO = YES_NO_OPTION;
    static public final int SIM_NAO_CANCELAR_OPCAO = YES_NO_CANCEL_OPTION;
    static public final int PLAIN_MENSAGEM = PLAIN_MESSAGE;
    static public final int ERROR_MENSAGEM = ERROR_MESSAGE;
    static public final int QUESTAO_MENSAGEM = QUESTION_MESSAGE;
    static public final int ATENCAO_MENSAGEM = WARNING_MESSAGE;
    static public final int INFORMACAO_MENSAGEM = INFORMATION_MESSAGE;

    public static void mensageiro(String mensagem) {
        showMessageDialog(null, mensagem);
    }

    public static void mensageiroAtencao(String mensagem) {
        showMessageDialog(null, mensagem, "Mensagem", WARNING_MESSAGE);
    }

    public static void mensageiro(String mensagem, String titulo) {
        showMessageDialog(null, mensagem, titulo, QUESTAO_MENSAGEM);
    }

    public static void mensagerio(String mensagem, String titulo, int tipoMensagem) {
        showMessageDialog(null, mensagem, titulo, tipoMensagem);
    }

    public static void mensageiro(String mensagem, String titulo, URL img) {
        Icon figura = new ImageIcon(img);
        showMessageDialog(null, mensagem, titulo, PLAIN_MENSAGEM, figura);
    }

    public static int mensageiroDialog(String mensagem, int opcaoBotoes) {
        Object[] botoes = (Object[]) getTipoMensagem(opcaoBotoes);
        return showOptionDialog(null, mensagem, "Mensagem", opcaoBotoes, QUESTAO_MENSAGEM, null, botoes, botoes[0]);
    }

    public static int mensageiroDialog(String mensagem, String titulo, int opcaoBotoes) {
        Object[] botoes = (Object[]) getTipoMensagem(opcaoBotoes);
        return showOptionDialog(null, mensagem, titulo, opcaoBotoes, QUESTAO_MENSAGEM, null, botoes, botoes[0]);
    }

    public static int mensageiroDialog(String mensagem, String titulo, int opcaoBotoes, URL img) {
        Icon figura = new ImageIcon(img);
        Object[] botoes = (Object[]) getTipoMensagem(opcaoBotoes);
        return showOptionDialog(null, mensagem, titulo, opcaoBotoes, PLAIN_MENSAGEM, figura, botoes, botoes[0]);
    }

    public static int mensageiroDialog(String mensagem, String titulo, int opcaoBotoes, int tipoMensagem) {
        Object[] botoes = (Object[]) getTipoMensagem(opcaoBotoes);
        return showOptionDialog(null, mensagem, titulo, opcaoBotoes, tipoMensagem, null, botoes, botoes[0]);
    }

    private static Object[] getTipoMensagem(int tipoMensagem) {
        Object[] botoes = null;

        if (tipoMensagem == SIM_NAO_CANCELAR_OPCAO) {
            botoes = new Object[]{"   Sim   ", "   Não   ", "   Cancelar   "};
        }
        if (tipoMensagem == SIM_NAO_OPCAO) {
            botoes = new Object[]{"Sim", "Não"};
        }
        return (botoes);
    }
}
